Bot Telegram: Membuat Hashtag di Chat memanfaatkan Google Script dan Spreadsheet (II)
Ini adalah bagian kedua ya, dari serial tutorial di bulan Ramadhan belajar Bot Telegram menggunakan Google Script untuk use case hashtags dengan pemanfaatan spreadsheet sebagai databasenya.
Pendahuluan
Meski ini lanjutan, tapi tidak ada salahnya saya kasih pengantar lagi.
Asumsi
Sudah membaca pada tutorial yang pertama, jika belum potongan coding di sini tidak berguna.
Mulai
Okay, mari kita mulai. Gasss polll lageeh!!
Code Bot
Buka file script yang menampung botnya. Kita sisipkan buat trigger hashtagnya.
Yang sebelumnya, jika belum mengerti copas aja atau telan mentah-mentah. Sedangkan yang ini, relatif jauh lebih mudah daripada memahami fungsi-fungsi tag sebelumnya. Karena mestinya sudah familiar maksud-maksudnya.
Kita pakai format seperti ini ya.
/+tag #namatag isipesan
/-tag #namatag
/tags
/+tag
artinya untuk menambah atau mengupdate tag
/-tag
artinya untuk menghapus tag
/tags
artinya untuk melihat daftar semua tag yang tersedia
Aturan Nama Tag
- paling depan harus karakter pagar #
- hanya terdiri 1 kata, boleh lebih dengan pemisah garis bawah
_
- kata tersebut boleh huruf, boleh angka, atau garis bawah
- karakter khusus tidak diperbolehkan, misalnya
!@$%^&*
- panjang boleh cuma 1 karakter
Aturan Isi Tag
Saat mentrigger /+tag #namatag isi tag
, maka:
- sesudah #namatag, HARUS ada spasi kemudian karakter
- sesudah karakter poin 1, boleh diisi ENTER atau isi pesan lainnya
- yang tidak kedetek: sesudah #namatag spasi atau ENTER kemudian isi pesan
Aturan-aturan ini bisa diubah sendiri, dengan syarat mengubah regex / codingannya juga.
Event Tambah Tag
Ingat, kalau ada kata exec
nya… berarti tambahkan di dalam blok kode if (update.message) {}
atau sesudah kalimat ini
// kalau nanti mau kembangin sendiri menjadi bot interaktif, code nya taruh disini
// atau buatkan fungsi tersendiri saja buat handle nya biar ga bertumpuk panjang
// -- mulai custom text --
tambahkan kode untuk trigger tambah tag.
// Merespon penambahan tag
// Dengan format: /+tag #namatag isi
var pola = /^(\/\+tag (#\w+)\s).{1,}/i;
if (pola.exec(msg.text) ) {
// pisah nama tag dan isi pesan
var cocok = msg.text.match(pola);
var tagName = cocok[2];
var tagValue = msg.text.replace(cocok[1],"");
var pesanTag = tagTambah(tagName, tagValue);
return tg.kirimPesan(msg.chat.id, pesanTag);
}
Event Tampil Tag
Untuk respon hastag, mencarinya kalau ketemu menampilkannya.
// respon #tag dan menampilkan isinya
// ini menggunakan regex yang awam susah paham, intinya klo ada hashtag ( 1 kata yang depannya ada # nya ) :
var pola = /^#\w+$/i;
if (pola.exec(msg.text) ) {
var pesanTag = tagCari(msg.text);
if (pesanTag) {
return tg.kirimPesan(msg.chat.id, pesanTag);
}
}
Event Hapus Tag
Untuk merespon perintah penghapusan tag.
// Merespon penghapusan tag
// Dengan format: /-tag #namatag
var pola = /^\/-tag (#\w+)$/i;
if (pola.exec(msg.text) ) {
// ambil nama tag nya aja
var cocok = msg.text.match(pola);
var tagName = cocok[1];
var pesanTag = hapusTag(tagName);
return tg.kirimPesan(msg.chat.id, pesanTag);
}
Event List Tag
Untuk merespon /tags
dan menampilkan semua tag yang sudah tersimpan.
// Merespon list tag
// Dengan format: /tags
var pola = /^\/tags$/i;
if (pola.exec(msg.text) ) {
var pesanTag = tagList();
return tg.kirimPesan(msg.chat.id, pesanTag);
}
Selesai
Sudah selesai, bisa di coba dengan menDeploy. Jangan lupa pilih New di versi saat mendeploy.
Semestinya bot sudah dapat menjalankan fungsi tags dengan sempurna.
Tips
Tips Pertama: Semua proses CRUD (membuat tag baru, update, hapus), bisa dilakukan langsung di spreadsheet. Jadi jika ingin menambah banyak tags, mending di spreadsheet saja. Lebih cepat dan praktis.
Demikian sebaliknya, ketika bot melakukan proses CRUD, di spreadsheet akan otomatis berubah.
Tips Kedua: Maka, jika di grup suatu ketika tidak menginginkan proses membuat/update/hapus tag. Hilangkan saja code dibagian per bagian respon event. Cukup sediakan aja respon untuk even tampilkan tag. Sehingga user biasa hanya bisa menampilkan tag, tapi tidak bisa ikutan otak atik isi tag.
ℹ️ ) Jika ingin melihat live demonya, bisa cek bot Ceriwis Demo @ceriwisdemobot dan lihat juga perubahan pada Spreadsheet Demo ini
Privacy
Jika user mengetik #namatag di grup, dan bot tidak merespon padahal tag tersebut ada. Mungkin perlu dicek privacy bot pada @botfather.
Matikan (disable) privacy nya jika menginginkan bot dapat bekerja untuk grup.
Masih nggak jalan? Cek postingan ini.
Pembatasan
Untuk pembatasan hanya tampil di grup tertentu, hanya boleh diakses user tertentu, atau pembatasan-pembatasan lainnya silakan dimodifikasi sendiri yak. Atau jika sempat, barangkali lain waktu akan dibahas juga. Kasih komentar saja jika ingin dibuatkan modifikasi-modifikasi berbagai pembatasan lainnya.
Kode Bonus
Mungkin ada yang ingin mengirim isi tag dengan cara bot membalas user dari pesan user yang direply?
Kode bonus ini ditayangkan di video.
Youtube
Buat yang males membaca, bisa menonton video nya di youtube.
Link Video: 12. Bot Telegram Fitur Hashtag (Google Script dan Spreadsheet)
Lihat daftar video: http://j.mp/botphplist
Penutup
Sengaja tidak saya sertakan full source code nya. Karena kebanyakan langsung di copas dan dijalankan, dan keluarlah error, kemudian bertanya kok ga bisa.
Maaf ya, sengaja biar mengikuti langkahnya satu per satu dari atas.
Jika ada pertanyaan, saran atau masukkan silakan didiskusikan. Jika ingin diskusi live dan biasanya jawabannya juga lebih cepat, baiknya bergabung saja di group Telegram @botIndonesia.
BUAT YANG SUKSES mencoba, jangan lupa komentarnya yak 😘